// ResultObject.h: interface for the ResultObject class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_RESULTOBJECT_H__4DE0F345_D6E0_401D_8D45_2192C101538C__INCLUDED_)
#define AFX_RESULTOBJECT_H__4DE0F345_D6E0_401D_8D45_2192C101538C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "defsSolver.h"
#include "Parameters.h"

class ResultObject  
{
	int m_gbl_TotoalRuns;
	int m_gblDepth;
	I64 m_gblGeneretedNodes;
	double m_gblSearchTime;
	I64 m_gblExpended;
	I64 m_gblTotalJumps;
	I64 m_gblTotalCut;
	Parameters *m_parm;
	char *m_CurrentOutputName;

public:
	int m_skipProblem;
	int currentDepth;
	bool bFoundSolution;
	I64 currentGeneretedNodes;
	I64 m_currentTotalCut;
	I64 m_currentExpended;
	double m_dblSearchTime;
	I64 m_currentJumps;

	ResultObject();
	virtual ~ResultObject();

	void resetCurrent();
	void ResetGlobal();

	void SetParameters(Parameters *in_parm);
	void SetSolveTime(double dTime);
	void SetOutputFileName(char *fName){ m_CurrentOutputName = fName;};
	void PrintCurent();
	void AddToGlobalResults();
	void PrintGlobalResults();
	void PrintHeuristicDistributionArray(I64 HeuristicsValuesTable[40]);

};

#endif // !defined(AFX_RESULTOBJECT_H__4DE0F345_D6E0_401D_8D45_2192C101538C__INCLUDED_)
